﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Data;

namespace GloberoSport.Negocio
{
    public class Noticia
    {
        #region CAMPOS
        private int _id;
        private string _titulo;
        private string _tipo;
        private string _autor;
        private string _contenido;
        private DateTime _fecha;
        #endregion

        #region PROPIEDADES
        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }
        public string Titulo
        {
            get { return _titulo; }
            set { _titulo = value; }
        }
        public string Tipo
        {
            get { return _tipo; }
            set { _tipo = value; }
        }
        public string Autor
        {
            get { return _autor; }
            set { _autor = value; }
        }
        public string Contenido
        {
            get { return _contenido; }
            set { _contenido = value; }
        }
        public DateTime Fecha
        {
            get { return _fecha; }
            set { _fecha = value; }
        }
        #endregion

        #region CONSTRUCTOR
        public Noticia()
        {
            _id = int.MinValue;
            _titulo = "";
            _tipo = "";
            _autor = "";
            _contenido = "";
            _fecha = DateTime.MinValue;
        }
        public Noticia(DataRow dr)
        {
            _id = int.Parse(dr["Id"].ToString());
            _titulo = dr["Titulo"].ToString();
            _tipo = "Mensaje";
            _autor = dr["autor"].ToString();
            _contenido = dr["Cuerpo"].ToString();
            _fecha = DateTime.Parse(dr["fecha"].ToString());
        }
        #endregion

        #region METODOS ESTATICOS DE CLASE
        public static List<Noticia> obtTodasNoticiasDe(string sUsuario)
        {
            List<Noticia> lista = new List<Noticia>();
            DataTable dt = Datos.Noticia.obtTodasNoticiasDe(sUsuario);
            foreach (DataRow dr in dt.Rows)
            {
                try
                {
                    lista.Add(new Noticia(dr));
                }
                catch (Exception ex)
                {
                }
            }
            return lista;
        }
        public static List<Noticia> obtTodasNoticiasDe(List<string> lUsuarios)
        {
            List<Noticia> lista = new List<Noticia>();
            DataTable dt = Datos.Noticia.obtTodasNoticiasDe(lUsuarios);
            foreach (DataRow dr in dt.Rows)
            {
                try
                {
                    lista.Add(new Noticia(dr));
                }
                catch (Exception ex)
                {
                }
            }
            return lista;
        }
        public static bool agregarNoticia(string sTitulo, string sCuerpo, string sUsuario, string sTipo)
        {
            bool bRet = false;
            try
            {
                Noticia n = new Noticia();
                n._titulo = sTitulo;
                n._contenido = sCuerpo;
                n._autor = sUsuario;
                n._fecha = DateTime.Now;
                n._tipo = sTipo;
                n.guardar();
                bRet = true;
            }
            catch (Exception ex)
            {
            }
            return bRet;
        }
        #endregion

        #region METODOS DE CLASE
        public void guardar()
        {
            if (_id == int.MinValue)
            {
                // NUEVO REGISTRO
                int iRes = Datos.Noticia.agregar(_titulo, _contenido, _autor, _tipo, _fecha);
            }
            else
            {
                // REGISTRO EXISTENTE
            }
        }
        #endregion
    }

}
